﻿using System;
using System.Web;
using System.Web.UI;

namespace POSGui.Classes
{
    public  class EventHandlerManager
    {
        private readonly HttpResponse _response;
        
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="response">El httpResponse de la página menú</param>
        public EventHandlerManager(HttpResponse response)
        {
            _response = response;
        }
        
        /// <summary>
        /// Evento que direcciona al módulo de cajas
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void DevolucionesClick(object sender, ImageClickEventArgs e)
        {
            _response.Redirect(Constants.MODULE_RETURN + Constants.PAGE_EXT);
        }

        /// <summary>
        /// Evento que direcciona al módulo de ventas
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void VentasClick(object sender, ImageClickEventArgs e)
        {
            _response.Redirect(Constants.MODULE_SALE + Constants.PAGE_EXT);
        }

        /// <summary>
        /// Evento que direcciona al módulo de configuracion
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void ConfiguracionClick(object sender, ImageClickEventArgs e)
        {
            _response.Redirect(Constants.MODULE_CONFIGURATION + Constants.PAGE_EXT);
        }        

        /// <summary>
        /// Evento que obtiene el handler de un botón
        /// </summary>
        /// <param name="buttonName">Nombre del botón</param>
        /// <returns></returns>
        public  ImageClickEventHandler getHandler(String buttonName)
        {
            switch (buttonName)
            {
                case Constants.MODULE_SALE:
                    return VentasClick;
                case Constants.MODULE_RETURN:
                    return DevolucionesClick;
                case Constants.MODULE_CONFIGURATION:
                    return ConfiguracionClick; 
            }
            return null;
        }
    }
}